package io.geekidea.boot.test.service;

import com.baomidou.mybatisplus.extension.service.IService;
import io.geekidea.boot.framework.page.Paging;
import io.geekidea.boot.test.dto.IssueFeedbackDto;
import io.geekidea.boot.test.entity.IssueFeedback;
import io.geekidea.boot.test.query.IssueFeedbackQuery;
import io.geekidea.boot.test.vo.IssueFeedbackVo;
import io.geekidea.boot.test.query.AppIssueFeedbackQuery;
import io.geekidea.boot.test.vo.AppIssueFeedbackVo;


/**
 * 问题反馈 服务接口
 *
 * @author geekidea
 * @since 2025-03-26
 */
public interface IssueFeedbackService extends IService<IssueFeedback> {

    /**
     * 添加问题反馈
     *
     * @param dto
     * @return
     * @throws Exception
     */
    boolean addIssueFeedback(IssueFeedbackDto dto);

    /**
     * 修改问题反馈
     *
     * @param dto
     * @return
     * @throws Exception
     */
    boolean updateIssueFeedback(IssueFeedbackDto dto);

    /**
     * 删除问题反馈
     *
     * @param id
     * @return
     * @throws Exception
     */
    boolean deleteIssueFeedback(Long id);

    /**
     * 问题反馈详情
     *
     * @param id
     * @return
     * @throws Exception
     */
    IssueFeedbackVo getIssueFeedbackById(Long id);

    /**
     * 问题反馈分页列表
     *
     * @param query
     * @return
     * @throws Exception
     */
    Paging<IssueFeedbackVo> getIssueFeedbackPage(IssueFeedbackQuery query);

    /**
     * App问题反馈详情
     *
     * @param id
     * @return
     * @throws Exception
     */
    AppIssueFeedbackVo getAppIssueFeedbackById(Long id);

    /**
     * App问题反馈分页列表
     *
     * @param query
     * @return
     * @throws Exception
     */
    Paging<AppIssueFeedbackVo> getAppIssueFeedbackPage(AppIssueFeedbackQuery query);

}
